El archivo con la información se obtuvo del repositorio de Adolfo de Unanue Tiscareño [https://github.com/nanounanue/itam-dm/tree/master/data/algas] (https://github.com/nanounanue/itam-dm/tree/master/data/algas).
La base de datos “algas” proviene de la 1999 Computational Intelligence and Learning (COIL) competition, ésta contiene mediciones de concentraciones químicas en los rios y densidades de algas.
La base de datos se obtuvo de un estudio sobre calidad del agua, la muestra se tomó en sitios de diferentes ríos europeos durante un periodo de aproximadamente un año. Las muestras fueron analizadas con varias sustancias químicas y en paralelo fueron recolectadas muestras de algas para determinar la distribución poblacional de éstas.
La base consta de 18 variables que corresponden a la estación del año en la que la muestra fue tomada, la medida del río, la velocidad del fluido, 8 valores de concentraciones químicas relevantes para la distribución poblacional de algas. Las últimas 7 variables corresponden a la distribución de diferentes tipos de algas, donde los valores 0.0 significan que las frecuencias son muy pequeñas.
El set contiene 18 atributos en el siguiente orden:
| campo | atributo | valores | tipo |
|---|---|---|---|
| 1 | temporada | spring, summer, autumn, winter | categórica |
| 2 | tamaño del río | small, medium, large | categórica |
| 3 | velocidad | low, medium, large | categórica |
| 4-11 | concentraciones químicas | reales positivos | continua |
| 12-18 | distribución de diferentes tipos de algas | reales positivos | continua |
Los NA están codificados como XXXXXXX.
Se muestra la estructura general de la base
## Source: local data frame [200 x 18]
##
## temporada tamaño velocidad mxPH mnO2 C1 NO3 NO4 oPO4 PO4
## 1 winter small medium 8.00 9.8 60.80 6.238 578.00 105.00 170.00
## 2 spring small medium 8.35 8.0 57.75 1.288 370.00 428.75 558.75
## 3 autumn small medium 8.10 11.4 40.02 5.330 346.67 125.67 187.06
## 4 spring small medium 8.07 4.8 77.36 2.302 98.18 61.18 138.70
## 5 autumn small medium 8.06 9.0 55.35 10.416 233.70 58.22 97.58
## 6 winter small high 8.25 13.1 65.75 9.248 430.00 18.25 56.67
## 7 summer small high 8.15 10.3 73.25 1.535 110.00 61.25 111.75
## 8 autumn small high 8.05 10.6 59.07 4.990 205.67 44.67 77.43
## 9 winter small medium 8.70 3.4 21.95 0.886 102.75 36.30 71.00
## 10 winter small high 7.93 9.9 8.00 1.390 5.80 27.25 46.60
## .. ... ... ... ... ... ... ... ... ... ...
## Variables not shown: Chla (dbl), a1 (dbl), a2 (dbl), a3 (dbl), a4 (dbl),
## a5 (dbl), a6 (dbl), a7 (dbl)
Podemos observar las 18 diferentes variables que contiene la base, donde las 3 primeras parecen ser categóricas y el resto numéricas.
Se muestra la dimensión de la base.
## [1] 200 18
La base contiene 200 registros para cada una de las 18 variables.
Se muestran los nombres de la base.
## [1] "temporada" "tamaño" "velocidad" "mxPH" "mnO2"
## [6] "C1" "NO3" "NO4" "oPO4" "PO4"
## [11] "Chla" "a1" "a2" "a3" "a4"
## [16] "a5" "a6" "a7"
Se muestra la estructura de la base.
## Classes 'tbl_df', 'tbl' and 'data.frame': 200 obs. of 18 variables:
## $ temporada: chr "winter" "spring" "autumn" "spring" ...
## $ tamaño : chr "small" "small" "small" "small" ...
## $ velocidad: chr "medium" "medium" "medium" "medium" ...
## $ mxPH : num 8 8.35 8.1 8.07 8.06 8.25 8.15 8.05 8.7 7.93 ...
## $ mnO2 : num 9.8 8 11.4 4.8 9 13.1 10.3 10.6 3.4 9.9 ...
## $ C1 : num 60.8 57.8 40 77.4 55.4 ...
## $ NO3 : num 6.24 1.29 5.33 2.3 10.42 ...
## $ NO4 : num 578 370 346.7 98.2 233.7 ...
## $ oPO4 : num 105 428.8 125.7 61.2 58.2 ...
## $ PO4 : num 170 558.8 187.1 138.7 97.6 ...
## $ Chla : num 50 1.3 15.6 1.4 10.5 ...
## $ a1 : num 0 1.4 3.3 3.1 9.2 15.1 2.4 18.2 25.4 17 ...
## $ a2 : num 0 7.6 53.6 41 2.9 14.6 1.2 1.6 5.4 0 ...
## $ a3 : num 0 4.8 1.9 18.9 7.5 1.4 3.2 0 2.5 0 ...
## $ a4 : num 0 1.9 0 0 0 0 3.9 0 0 2.9 ...
## $ a5 : num 34.2 6.7 0 1.4 7.5 22.5 5.8 5.5 0 0 ...
## $ a6 : num 8.3 0 0 0 4.1 12.6 6.8 8.7 0 0 ...
## $ a7 : num 0 2.1 9.7 1.4 1 2.9 0 0 0 1.7 ...
Aparentemente no se observa ninguna discrepancia entre los nombres de las variables y la información que se presenta, tenemos que las tres primeras variables corresponden a datos de tipo caracter, que representan diferentes categorías; mientas que el resto de las variables son datos numéricos. Todo lo anterior parece acorde a la descripción que tenemos de la base.
## [1] "Las categorias de la variable temporada son:"
## [1] "winter" "spring" "autumn" "summer"
## [1] "Las categorias de la variable tamaño son:"
## [1] "small" "medium" "large"
## [1] "Las categorias de la variable velocidad son:"
## [1] "medium" "high" "low"
## [1] "La estructura de las variables númericas sobre concentraciones químicas es:"
## Classes 'tbl_df', 'tbl' and 'data.frame': 200 obs. of 8 variables:
## $ mxPH: num 8 8.35 8.1 8.07 8.06 8.25 8.15 8.05 8.7 7.93 ...
## $ mnO2: num 9.8 8 11.4 4.8 9 13.1 10.3 10.6 3.4 9.9 ...
## $ C1 : num 60.8 57.8 40 77.4 55.4 ...
## $ NO3 : num 6.24 1.29 5.33 2.3 10.42 ...
## $ NO4 : num 578 370 346.7 98.2 233.7 ...
## $ oPO4: num 105 428.8 125.7 61.2 58.2 ...
## $ PO4 : num 170 558.8 187.1 138.7 97.6 ...
## $ Chla: num 50 1.3 15.6 1.4 10.5 ...
## [1] "La estructura de las variables númericas sobre distribuión de los diferentes tipos de algas es:"
## Classes 'tbl_df', 'tbl' and 'data.frame': 200 obs. of 7 variables:
## $ a1: num 0 1.4 3.3 3.1 9.2 15.1 2.4 18.2 25.4 17 ...
## $ a2: num 0 7.6 53.6 41 2.9 14.6 1.2 1.6 5.4 0 ...
## $ a3: num 0 4.8 1.9 18.9 7.5 1.4 3.2 0 2.5 0 ...
## $ a4: num 0 1.9 0 0 0 0 3.9 0 0 2.9 ...
## $ a5: num 34.2 6.7 0 1.4 7.5 22.5 5.8 5.5 0 0 ...
## $ a6: num 8.3 0 0 0 4.1 12.6 6.8 8.7 0 0 ...
## $ a7: num 0 2.1 9.7 1.4 1 2.9 0 0 0 1.7 ...
Se muestran las primeras observaciones que contiene la base.
## Source: local data frame [6 x 18]
##
## temporada tamaño velocidad mxPH mnO2 C1 NO3 NO4 oPO4 PO4
## 1 winter small medium 8.00 9.8 60.80 6.238 578.00 105.00 170.00
## 2 spring small medium 8.35 8.0 57.75 1.288 370.00 428.75 558.75
## 3 autumn small medium 8.10 11.4 40.02 5.330 346.67 125.67 187.06
## 4 spring small medium 8.07 4.8 77.36 2.302 98.18 61.18 138.70
## 5 autumn small medium 8.06 9.0 55.35 10.416 233.70 58.22 97.58
## 6 winter small high 8.25 13.1 65.75 9.248 430.00 18.25 56.67
## Variables not shown: Chla (dbl), a1 (dbl), a2 (dbl), a3 (dbl), a4 (dbl),
## a5 (dbl), a6 (dbl), a7 (dbl)
Se muestran las últimas observaciones que contiene la base.
## Source: local data frame [6 x 18]
##
## temporada tamaño velocidad mxPH mnO2 C1 NO3 NO4 oPO4 PO4
## 195 summer large medium 8.5 7.9 12.44 2.586 96.67 19.11 61.44
## 196 autumn large medium 8.4 8.4 17.38 3.833 83.75 53.62 79.75
## 197 spring large medium 8.3 10.6 14.32 3.200 125.33 35.33 75.90
## 198 autumn large medium 8.2 7.0 139.99 2.978 60.11 78.33 140.22
## 199 winter large medium 8.0 7.6 NA NA NA NA NA
## 200 summer large medium 8.5 6.7 82.85 2.800 27.07 64.00 140.52
## Variables not shown: Chla (dbl), a1 (dbl), a2 (dbl), a3 (dbl), a4 (dbl),
## a5 (dbl), a6 (dbl), a7 (dbl)
Se muestra un grupo de observaciones que contiene la base que fueron seleccionadas aleatoriamente.
## Source: local data frame [6 x 18]
##
## temporada tamaño velocidad mxPH mnO2 C1 NO3 NO4 oPO4 PO4
## 161 spring large low 9.00 5.8 NA 0.900 142.00 102.0 186.0
## 187 winter large low 8.70 11.7 22.45 3.765 88.18 41.3 85.4
## 41 winter small medium 8.00 5.5 77.00 6.096 122.85 143.7 296.0
## 13 winter small high 7.74 9.6 5.00 1.223 27.29 12.0 17.0
## 133 winter medium medium 7.90 9.8 194.75 6.513 3466.66 23.0 173.8
## 142 spring medium high 7.80 9.5 8.30 1.670 34.00 16.8 35.2
## Variables not shown: Chla (dbl), a1 (dbl), a2 (dbl), a3 (dbl), a4 (dbl),
## a5 (dbl), a6 (dbl), a7 (dbl)
Se muestra el resumen estadístico de la base, donde aparentemente no se observa algo raro. Se puede identificar es que hay variables con valores faltantes y que los valores para las últimas 7 variables son relativamente pequeños.
## temporada tamaño velocidad mxPH
## Length:200 Length:200 Length:200 Min. :5.60
## Class :character Class :character Class :character 1st Qu.:7.70
## Mode :character Mode :character Mode :character Median :8.06
## Mean :8.01
## 3rd Qu.:8.40
## Max. :9.70
## NA's :1
## mnO2 C1 NO3 NO4
## Min. : 1.50 Min. : 0.2 Min. : 0.05 Min. : 5
## 1st Qu.: 7.72 1st Qu.: 11.0 1st Qu.: 1.30 1st Qu.: 38
## Median : 9.80 Median : 32.7 Median : 2.67 Median : 103
## Mean : 9.12 Mean : 43.6 Mean : 3.28 Mean : 501
## 3rd Qu.:10.80 3rd Qu.: 57.8 3rd Qu.: 4.45 3rd Qu.: 227
## Max. :13.40 Max. :391.5 Max. :45.65 Max. :24064
## NA's :2 NA's :10 NA's :2 NA's :2
## oPO4 PO4 Chla a1
## Min. : 1.0 Min. : 1.0 Min. : 0.20 Min. : 0.00
## 1st Qu.: 15.7 1st Qu.: 41.4 1st Qu.: 2.00 1st Qu.: 1.50
## Median : 40.1 Median :103.3 Median : 5.47 Median : 6.95
## Mean : 73.6 Mean :137.9 Mean : 13.97 Mean :16.92
## 3rd Qu.: 99.3 3rd Qu.:213.8 3rd Qu.: 18.31 3rd Qu.:24.80
## Max. :564.6 Max. :771.6 Max. :110.46 Max. :89.80
## NA's :2 NA's :2 NA's :12
## a2 a3 a4 a5
## Min. : 0.00 Min. : 0.00 Min. : 0.00 Min. : 0.00
## 1st Qu.: 0.00 1st Qu.: 0.00 1st Qu.: 0.00 1st Qu.: 0.00
## Median : 3.00 Median : 1.55 Median : 0.00 Median : 1.90
## Mean : 7.46 Mean : 4.31 Mean : 1.99 Mean : 5.06
## 3rd Qu.:11.38 3rd Qu.: 4.92 3rd Qu.: 2.40 3rd Qu.: 7.50
## Max. :72.60 Max. :42.80 Max. :44.60 Max. :44.40
##
## a6 a7
## Min. : 0.00 Min. : 0.0
## 1st Qu.: 0.00 1st Qu.: 0.0
## Median : 0.00 Median : 1.0
## Mean : 5.96 Mean : 2.5
## 3rd Qu.: 6.92 3rd Qu.: 2.4
## Max. :77.60 Max. :31.6
##
Dado que la base no cuenta con una columna correspondiente al id, agregamos la variable correspondiente.
Verificamos el formato de los nombres de las variables y observamos que no todos tienen el formato deseado, por lo que aplicaremos una limpieza.
## [1] "temporada" "tamaño" "velocidad" "mxPH" "mnO2"
## [6] "C1" "NO3" "NO4" "oPO4" "PO4"
## [11] "Chla" "a1" "a2" "a3" "a4"
## [16] "a5" "a6" "a7"
Aparentemente la base no requiere ninguna recodificación. Las variables categóricas tienen a lo más 4 niveles y no hay variables de fechas.
Se muestran las diferentes clases de las variables.
## temporada tamaño velocidad mxPH mnO2 C1
## "character" "character" "character" "numeric" "numeric" "numeric"
## NO3 NO4 oPO4 PO4 Chla a1
## "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
## a2 a3 a4 a5 a6 a7
## "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
Tenemos que las tres primeras variables son de tipo caracter y el resto numéricas, aparentemente el único ajuste que debemos realizar es definir como factores a las variables tipo caracter, para que posteriormente puedan ser utilizadas en el análisis.
Removemos espacios, puntuaciones, etc. en los niveles de los factores. En este caso, la base no requirió de normalizar niveles.
Aparentemente no es necesario hacer ninguna transformación a los datos. En el análisis gráfico trataremos de identificar si se requiere alguna transformación.
Una vez aplicado nuestro proceso de preparación para limpieza de metadatos y ajuste de formatos tenemos lo siguiente:
Verificamos como quedan los nombres de las variables de la base.
## [1] "temporada" "tamanio" "velocidad" "mxph" "mno2"
## [6] "c1" "no3" "no4" "opo4" "po4"
## [11] "chla" "a1" "a2" "a3" "a4"
## [16] "a5" "a6" "a7" "id"
Así queda el ajuste sobre el tipo de variables.
## temporada tamanio velocidad mxph mno2 c1 no3
## "factor" "factor" "factor" "numeric" "numeric" "numeric" "numeric"
## no4 opo4 po4 chla a1 a2 a3
## "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"
## a4 a5 a6 a7 id
## "numeric" "numeric" "numeric" "numeric" "integer"
Con la finalidad de observar el comportamiento de las variables que contiene la base, se obtienen las gráficas correspondientes para cada una de las variables.
Asimismo, se obtienen gráficas de la relación entre cada par de variables que se podría tener.
## R version 3.1.1 (2014-07-10)
## Platform: i386-w64-mingw32/i386 (32-bit)
##
## locale:
## [1] LC_COLLATE=Spanish_Mexico.1252 LC_CTYPE=Spanish_Mexico.1252
## [3] LC_MONETARY=Spanish_Mexico.1252 LC_NUMERIC=C
## [5] LC_TIME=Spanish_Mexico.1252
##
## attached base packages:
## [1] grid stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] corrplot_0.73 stringr_0.6.2 lubridate_1.3.3
## [4] directlabels_2013.6.15 quadprog_1.5-5 ggplot2_1.0.0
## [7] dplyr_0.2 tidyr_0.1 plyr_1.8.1
##
## loaded via a namespace (and not attached):
## [1] assertthat_0.1 colorspace_1.2-4 digest_0.6.4 evaluate_0.5.5
## [5] formatR_1.0 gtable_0.1.2 htmltools_0.2.4 knitr_1.6
## [9] labeling_0.3 MASS_7.3-33 memoise_0.2.1 munsell_0.4.2
## [13] parallel_3.1.1 proto_0.3-10 Rcpp_0.11.2 reshape2_1.4
## [17] rmarkdown_0.2.64 scales_0.2.4 tools_3.1.1 yaml_2.1.13